﻿#define  _CRT_SECURE_NO_WARNINGS
#pragma once
#include <stdio.h>
//int main()
//{
//	int num1 = 0;
//		int num2 = 0;
//		scanf("%d%d", &num1, &num2);
//		printf(" % d\n", num1 + num2);
//		return 0;
//}
//
//int main()
//{
//	int a, b;
//	scanf("%d%d", &a, &b);
//	printf("%d\n", a + b);
//	return 0;
//}
//int main()
//{
//	int a, b;
//	scanf("%d%d", &a, &b);
//	printf("%d\n", a * b);
//	return 0;
//}
//
//int main()
//{
//	int input = 0;
//	printf("今天冲不冲？1/0\n");
//	printf("冲到昏过去为止1\n");
//	printf("今天好好养生0\n");
//	scanf("%d", &input);
//	if (input == 1)
//	{
//		printf("别让欲望控制你的大脑！");
//	}
//	else
//	{
//		printf("你是好样的！");
//	}
//	return 0;
//}
//int main()
//{
//	int time= 0;
//	printf("练习爬格子的时间(单位：小时）\n");
//	while (time < 1000)
//	{
//		printf("爬格子:%d\n",time);
//		time++;
//	}
//        if (time >= 1000)
//		{
//			printf("成为吉他大神\n");
//		}
//		else 
//		{
//			printf("继续努力");
//		}
//
//	return 0;
//}


	//int Add(int a, int b)
	//{
	//	return (a + b);
	//}
	//int main()
	//{
	//	int n = 0;
	//	int m = 0;
	//	scanf("%d %d",& n,& m);
	//	int sum = Add(n,m);
	//	printf("%d\n", sum);
	//		return 0;
	//}

	//int Add(int a, int b)
	//{
	//	return (a + b);
	//}
	//int main()
	//{
	//	int n = 0;
	//	int m = 0;
	//	scanf("%d %d", &n, &m);
	//	int sum = Add(n, m);
	//	int t1 = 100;
	//	int t2 = 900;
	//	int ret = Add(t1, t2);
	//	printf("%d\n", sum);
	//	return 0;
	//}

//
//int main()
//{
//	int arr[] = { 1,4,7,9,5,3,6,8,9,0,5 };
//	/*printf("%d\n", arr[1]);*/
//	int i = 0;
//	while (i < 10)
//	{
//      printf("%d", arr[i]);
//		//i=i+1;
// i+=1;
//			
//	}
//	return 0;
//}


//int main()
//{
//	int a = 5;
//		double b = 7.0;
//		printf("%.15f\n", b/a);
//		return 0;
//}

//int main()
//{
//	int a = 5;
//	int b = ++a;
//	printf("%d", b);
//	return 0;
//}


//extern Add(int x, int y);
//int main()
//{
//	int a = 6;
//	int b = 9;
//	int c = Add(a , b);
//	printf("%d", c);
//	return 0;
//}



//#define ADD(x,y) ((x)+(y))
//int main()
//{
//	int a, b;
//	scanf("%d%d",&a,&b);
//	int c = ADD(a,b);
//	printf("%d", c);
//	return 0;
//}

//
//void test()
//{
//	int a = 1;
//	a++;
//	printf("%d\n", a);
//}
//
//
//int main()
//{
//	int i = 0;
//	while (i < 10)
//	{
//		test();
//		i++;
//	}
//	return 0;
//}
//
//


//void test()
//{
//	static int a = 1;
//	a++;
//	printf("%d\n", a);
//}
//
//typedef  int 定义;
//int main()
//{
//	定义 i = 0;
//	while (i < 10)
//	{
//		test();
//		i++;
//	}
//	return 0;
//}

//int main()
//{
//	printf("%d\n", sizeof(short));
//	printf("%d\n", sizeof(long));
//	printf("%d\n", sizeof(int));
//	printf("%d\n", sizeof(float));
//	printf("%d\n", sizeof(double));
//	printf("%d\n", sizeof(char));
//
//	return 0;
//}

//int main()
//{
//	int a = 5;
//	int* p = &a;
//	*p = 10;
//	printf("%d", *p);
//
//	return 0;
//}

//struct 物语
//{
//	int day;
//	char where[6];
//	char wet[4];
//};
//int main()
//{
//	struct 物语 wy = { 9,"qikyu","wet" };
//	printf("%d %s %s", wy.day,wy.where,wy.wet);
//	
//	return 0;
//}

//int main()
//{
//	int num = 0;
//	scanf("%d", &num);
//	if (1==num%2)
//		printf("奇数");
//	else
//		printf("偶数");
//	return 0;
//}

//int main()
//{
//	int num = 0;
//	while(num<100)
//	{
//		num++;
//		if (num % 2 == 1)
//			printf("%d ", num);
//	}
//	return 0;
//}

//int main()
//{
//	int i = 1;
//	while (i < 100)
//	{
//		printf("%d ", i);
//		i += 2;
//	}
//	return 0;
//}

//int main()
//{
//	int day = 0;
//	scanf("%d", &day);
//	switch (day)
//	{
//	case 1:
//		printf("周一");
//		break;
//	case 2:
//	case 3:
//	case 4:
//	case 5:
//		printf("工作日");
//		break;
//	case 6:
//	case 7:
//		printf("加班日");
//		break;
//	default:
//		printf("bad");
//	}
//	return 0;
//}

//int main()
//{
//	printf("请输入密码:");
//	char ch = 0;
//	scanf("%s", &ch);
//	
//	/*while (ch!='\n')
//	{
//		ch = getchar();
//	}*/
//
//	while ((ch = getchar())!= '\n')
//	{
//		;
//	}
//
//	printf("请确认密码(Y/N):");
//	int a = getchar();
//	if ('Y' == a)
//	{
//		printf("YES\n");
//	}
//	else
//		printf("NO\n");
//
//	return 0;
//}

//int main()
//{
//	int year = 0;
//	int month = 0;
//	int date = 0;
//	scanf("%4d%2d%2d",& year, & month ,& date);
//	printf("year=%d\n", year);
//	printf("month=%02d\n", month);
//	printf("date=%02d\n", date);
//	return 0;
//}

//int main()
//{
//	int arr[5] = { 0 };
//	int i = 0;
//	while (i < 5)
//	{
//	scanf("%d", &arr[i]);
//		i++;
//	}
//	int max = arr[0];
//	  i = 0;
//	while (i < 5)
//	{
//		if (max < arr[i])
//		{
//			max = arr[i];
//		}
//		i++;
//	}
//	printf("%d\n", max);
//	return 0;
//}

//int main()
//{
//	int i = 1;
//	while (i!=11)
//	{
//		printf("%d ", i);
//		i++;
//	}
//	return 0;
//}
//
//int main()
//{
// inti=0;
//	for (i = 1; i <= 20; i++)  for循环
//	{
//		printf("%d ", i);
//	}
//	return 0;
//}


//二分法查找：
// 
//int main()
//{
//	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
//	int k = 5;
//	int left = 0;
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	int right = sz;
//	int mid = 0;
//	while (left<=right)
//	{
//	int mid = left + (right - left) / 2;
//		if (arr[mid] < k)
//		{
//			left = mid+1;
//		}
//		else if (arr[mid] > k)
//		{
//			right = mid-1;
//		}
//		else if(arr[mid]==k)
//		{
//			printf("找到了，下标为:%d ", mid);
//			break;
//		}
//	}
//	if (left > right)
//		{
//			printf("找不到");
//		}
//	return 0;
//}

//遍历法查找
//int main()
//{
//	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
//	int i = 0;
//	int k = 5;
//	for (i = 0; i!=k+1; i++)
//	{
//		if (arr[i] == k)
//		{
//			printf("找到了，下标为%d ", i);	
//			break;
//		}
//		else
//			continue;
//		
//	}
//	return 0;
//}

////前后一起出字
//#include<Windows.h>//Sleep(200);系统指令
//#include<stdlib.h>//system("cls");cmd指令,库函数，可以执行系统命令
//int main()
//{
//	char arr1[] = "Finish this code and go to bed!";
//	char arr2[] = "*******************************";
//	int left = 0;
//	int right = strlen(arr2) - 1;
//	while (left <= right)
//	{
//		arr2[left] = arr1[left];
//		arr2[right] = arr1[right];
//		printf("%s\n", arr2);
//		left++;
//		right--;
//		Sleep(200);
//		system("cls");
//	}
//	printf("Finish this code and go to bed!");
//	return 0;
//}

//#include<string.h>
//int main()
//{
//	char arr[] = { "qwerty" };
//	char password[] = {0};
//	int i = 0;
//	for (i = 0; i < 3; i++)
//	{
//		printf("请输入密码:");
//		scanf("%s", password);
//		//if (strcmp(password, "qwerty") == 0)
//		if(password!=arr)
//		{
//			printf("密码错误\n");
//		}
//		else
//		{
//			
//            printf("登陆成功\n");
//			break;
//		}
//	}
//	if (i == 3)
//	{
//		printf("密码错误三次，程序关闭");
//	}
//	return 0;
//}

//#include<stdlib.h>
//#include<string.h>
//#include<Windows.h>
//#include<time.h>
//void menu()
//{
//	printf("#######################################\n");
//	printf("#########       1.star      ###########\n");
//	printf("#########       0.out       ###########\n");
//	printf("#######################################\n");
//}
////0--rand_max(32767)
//void game()
//{
//	int kanose = rand()%100+1;
//	int guess = 0;
//	while (1)
//	{
//		printf("猜数字:>");
//		scanf("%d", &guess);
//		if (guess < kanose)
//		{
//			printf("猜小了\n");
//		}
//		else if (guess > kanose)
//		{
//			printf("猜大了\n");
//		}
//		else
//		{
//			printf("猜对了\n");
//			break;
//		}
//	}
//}    
//int main()
//{
//	int input = 0;
//	srand((unsigned int)time(NULL));
//
//	do
//	{
//		menu();
//		printf("请输入:\n");
//		scanf("%d",&input);
//		switch (input)
//		{
//		case 0:
//			printf("退出游戏");
//			break;
//		case 1:
//
//			game();
//			break;
//
//		default:
//			printf("输入内容不符合选项，请重新输入！\n");
//			break;
//		}
//	}
//	 
//	while (input);
//
//	return 0;
//}


//定时关机程序
//int main()
//{
//	system("shutdown -s -t 600");
//	printf("你的电脑还有600s自动关闭,输入取消而结束该程序。\n");
//
//	char input[] = {0};
//	while (1)
//	{
//		  scanf("%s", input);
//
//	      if (strcmp(input,"取消") == 0)
//	    {
//		    system("shutdown -a");
//			printf("关机程序已关闭\n");
//			break;
//    	}
//	}
//
//	return 0;
//}


//int main()
//{
//	system("shutdown -s -t 60");
//	printf("你的电脑还有60s自动关闭,请从1--100猜一个数字，如果猜对，关机程序结束\n");
//
//	while (1)
//	{
//			srand((unsigned int)time(NULL));
//			game();
//			system("shutdown -a");
//			printf("关机程序已停止\n");
//			break;
//	}
//
//	return 0;
//}


////排序（制作中！！！！）
//void Swap(int* px,int* py)
//{
//	int z = 0;
//	z = *px;
//	*px = *py;
//	*py = z;
//}
//
//int main()
//{
//	char arr[] = { 0,8,6,7,4,9,2,5 };
//	//int a = strlen(arr)-1;
//	int a = sizeof(arr) / sizeof(arr[0]);
//	scanf("%d", arr);
//	for ( int i = 0; i < a; i++)
//	{
//		for (int j = 0; i < a - 1; j++)
//		{
//			if (arr[j] < arr[j+1])
//			{
//				int z = 0;
//				z = arr[j];
//				arr[j] = arr[j + 1];
//				arr[j + 1] = z;
//				//Swap(arr[j+1], arr[j]);
//			}
//		}
//	}
//	printf("%s", arr);
//	return 0;
//}


////计算素数个数
//#include<math.h>
//int SuShu(int x )
//{
//	int a = 0;
//	//for (a = 2; a <= x - 1; a++)
//     for(a = 2; a <= sqrt(x); a++)
//	{
//		if (x % a == 0)
//		{
//			return 0;
//		}
//	}
//	return 1;
//}
//
//int main()
//{
//	int i = 0;
//	int c = 0;
//	for (i = 1; i <= 1000; i += 2)
//	{
//		if (SuShu(i))
//		{
//			printf("%d ", i);
//			c++;
//		}
//	}
//	printf("\ncount=%d\n",c);
//	return 0;
//}

//#include "add.h"
//int main()
//{
//	int a, b;
//	scanf("%d%d", &a, &b);
//	int sum = Add(a, b);
//	printf("%d", sum);
//	return 0;
//}

//#include<windows.h>
//int main()
//{
//	char arr[5] = { 0 };
//	int a = 0;
//	for (a = 0; a < 5; a++)
//	{
//		scanf("%d", &arr[a]);
//	}
//	int i = 0;
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	while (i<=sz-1)
//	{
//		static int a = 0;
//		a = a + arr[i];
//		i++;
//		system("cls");
//		printf("%d ", a);
//	}
//
//	return 0;
//}


//////多个数字相加
//
//int main()
//{
//	int a = 0;
//	int b = 0;
//	while (2)
//	{
//		scanf("%d", &a);
//		b += a;
//		if ((getchar()) == '\n')
//			break;
//	}
//	printf("sum=%d", b);
//	return 0;
//}

//自动填充逗号
//int main()
//{
//	char arr[] = {0};
//	while (1)
//	{
//		scanf("%s", arr);
//		printf("%s,", arr);
//		int ch = getchar();
//		//if (ch == '\n')
//		if (ch == '\t')
//			break;
//		else
//			continue;
//	}
//	return 0;
//}



//
//int main()
//{
//	int year[5], ans = 0;
//	for (int i = 0; i < 5; i++)
//	{
//		scanf("%d", &year[i]);
//	}
//	for (int j = 0; j < 5; j++)
//	{
//		if (year[j] % 10 == year[j] % 100 / 10)
//		{
//			ans++;
//		}
//	}
//	printf("%d", ans);
//	return 0;
//}
//



//
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int arr[10000] = { 0 };
//	int i = 0;
//	for (i = 0; i < n; i++)
//	{
//		scanf("%d", &arr[i]);
//	}
//	for (int a = 0; a < n-1; a++)
//	{
//		for (int b = 0; b < n-1-a; b++)
//		{
//			if (arr[b] > arr[b+1])
//			{
//				int mid = arr[b];
//				arr[b] = arr[b+1];
//				arr[b+1] = mid;
//			}
//		}
//	}
//	for (int c = n; c > 0; c--)
//	{
//		for (int d = n-1; d > 0; d--)
//		{
//			if (arr[d-1] <= 0)
//			{
//				int mid2 = arr[d];
//				arr[d] = arr[d-1];
//				arr[d-1] = mid2;
//			}
//		}
//	}
//	for (i = 0; i < n; i++)
//	{
//		printf("%d ", arr[i]);
//	}
//	return 0;
//}



//int SL(int x)
//{
//	if (x <= 2)
//	{
//		return 1;
//	}
//	if (x > 2)
//	{
//		return (SL(x - 1) + SL(x - 2));
//
//	}
//}
//
//
//int main()
//{
//	int i = 0;
//	scanf("%d", &i);
//	int ret = SL(i);
//	printf("%d", ret);
//	return 0;
//}



//int main()
//{
//	int F = 0;
//	float C = 0;
//	scanf("%d", &F);
//	C = 5.0 / 9.0 * (F - 32);
//	printf("%.2f\n", C);
//	return 0;
//}



//#include<stdio.h>
//int SL(int x)
//{
//	if (x <= 2)
//	{
//		return 1;
//	}
//	if (x > 2)
//	{
//		return (SL(x - 1) + SL(x - 2));
//	}
//}
//
//int main()
//{
//	int r,l,i;
//	int a = 0;
//	scanf("%d%d", &r, &l);
//	for (i = l; i <= r; i++)
//	{
//		int ret = SL(i);
//		a += ret;
//	}
//	printf("%d",a);
//	return 0;
//}


//int main()
//{
//	char ch = 0;
//	char ch1 = 0;
//	scanf("%c", &ch1);
//	ch = ch - 32;
//	printf("%c",ch1);
//}



//#include<stdio.h>
//#include<string.h>
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	char ch[999];
//	snprintf(ch, sizeof(ch), "%d", n);
//	printf("%c", ch[5]);
//}




//int my_strlen(char* str)
//{
//	char* stars = str;
//	while (*str != '\0')
//	{
//		*str++;
//	}
//	return (str - stars);
//}
//
//int main()
//{
//	char len = my_strlen("abcdef");
//	printf("%d", len);
//	return 0;
//}


//#include<string.h>
//int main()
//{
//	int i = 0;
//	scanf("%d", &i);
//	char arr[6];
//	snprintf(arr, sizeof(arr), "%d", i);
//	printf("%c %c %c %c %c", arr[0], arr[1], arr[2], arr[3], arr[4]);
//	return 0;
//}

//20000000~20221112
//
//int main()
//{
//	int i = 20000000;
//	int count = 0;
//	for (i = 20000000; i <= 20221112; i++)
//	{
//		int a = i / 10000000;
//		int b = i % 10000000 / 1000000;
//		int c = i % 1000000 / 100000;
//		int d = i % 100000 / 10000;
//		int e = i % 10000 / 1000;
//		int f = i % 1000 / 100;
//		int g = i % 100 / 10;
//		int h = i % 10;
//		if (a == h) {
//			if (b == g) {
//				if (c == f) {
//					if (d == e) {
//						count++;
//					}
//				}
//			}
//		}
//	}
//	printf("%d", count);
//	return 0;
//}


//int main()
//{
//	int i = 100;
//	int sum = 0;
//	int mid = 0;
//	int sx = 0;
//	int cot = 0;
//	for (i = 100;i <= 100000;i++)
//	{
//		int j = 0;
//		int l = 0;
//		char ch[10];
//		snprintf(ch, sizeof(ch), "%d", i);
//		char* pj = ch;
//		while (ch[j] != '\0')
//		{
//			j++;
//		}
//		for(l = 0;l < j -1 ;l++)
//		{
//			int a = 0;
//			sscanf(pj, "%c", &a);
//			mid = pow((a - 48), j);
//			sum += mid;
//			pj++;
//			if (sum == i)
//			{
//				cot++;
//			}
//		}
//	}
//	printf("%d", cot);
//	return 0;
//}

//int hana(int i)  //判断是否为水仙花数
//{
//	int cot = 0;
//	int c = 0,j,sum = 0,yu;
//	int n = i;
//	int g = i;
//	for (;;)
//	{
//		i /= 10;
//		cot++;
//		if (i == 0)
//			break;
//	}
//	for (j = 1;j <= cot;j++)
//	{
//		yu = g % 10;
//		g = g / 10;
//		sum = sum + pow(yu, cot);
//	}
//	if (sum == n)
//		return 1;
//	else
//		return 0;
//}
//
//
//int main()
//{
//	int i = 100;
//	int count = 0;
//	int ss = 0;
//	for (i = 100; i <= 100000; i++)
//	{
//		int ret = hana(i);
//		if (ret)
//		{
//			count++;
//			ss += i;
//		}
//	}
//	printf("%d", ss);
//	return 0;
//}

//
//struct peo
//{
//	int tall;
//	int tiz;
//};
//
//
//struct stu
//{
//	struct peo a;
//	int num;
//	char name[100];
//};
//
//int main()
//{
//	struct stu s = { {180,120},123456,"asdada"};
//	printf("%d %d %d %s", s.a.tall, s.a.tiz, s.num, s.name);
//
//	return 0;
//}



//int main()
//{
//	int t = 0;
//	int d[100001];//距离
//	int dh1 = 0;
//	int dh2 = 0;
//	int s[100001];//步频
//	int sh = 0;
//	scanf("%d", &t);
//	for (int i = 0;i < t;i++)
//	{
//		scanf("%d%d", &d[i], &s[i]);
//		dh1 += d[i];
//		sh += s[i];
//		if (s[i] < 220 && s[i]>80 && d[i] <= 250 && d[i] >= 100)
//		{
//			dh2 += d[i];
//		}
//	}
//	float v = (1000.0 * t * 60.0) / dh1;
//	if (dh2 < 2000)
//	{
//		printf("%d %.0f %d Invalid", dh2, v, sh / t);
//	}
//	else if (dh2 >= 2000 && dh2 <= 4000)
//	{
//		printf("%d %.0f %d Valid", dh2, v, sh / t);
//	}
//	else
//	{
//		printf("4000 %.0f %d Valid", v, sh / t);
//	}
//	return 0;
//}

//
//int main()
//{
//	char arr[] = {"1A1A 1111 1818 81881818 8818 1118 1111 1111 1111 1111 1111 1110"};
//	int i = 0;
//	int j = 0;
//	for (i = 0; i < 60; i++)
//	{
//		//if (j % 68 == 0)
//			//printf("\n");
//		if (arr[i] == '0')
//			printf("0");
//		else if (arr[i] == '1')
//			printf(" ");
//		else if (arr[i] == '2')
//			printf("'");
//		else if (arr[i] == '3')
//			printf("(");
//		else if (arr[i] == '4')
//			printf(")");
//		else if (arr[i] == '6')
//			printf("/");
//		else if (arr[i] == '7')
//			printf("\\");
//		else if (arr[i] == '8')
//			printf("_");
//		else if (arr[i] == '9')
//			printf("`");
//		else if(arr[i] == ' ')
//			continue;
//			else
//				printf("|");
//
//	}
//	return 0;
//}



//int main()
//{
//	int n, k;
//	scanf("%d%d", &n, &k);
//	char ch[100001];
//	scanf("%s", &ch);
//	int cot = 0;
//	for (int i = 0; i < n;)
//	{
//		if (ch[i] == 'O')
//		{
//			i += k;
//			cot++;
//		}
//		else
//		{
//			i++;
//		}
//	}
//	printf("%d", cot);
//	return 0;
//}

//#include<math.h>
//
//int zhishu(int x)
//{
//	int i = 2;
//	for ( i = 2; i < sqrt(x); i++)
//	{
//		if (x % i == 0 && x != i)
//			return 0;
//	}
//	return 1;
//}
//
//int main()
//{
//	int a = 2;
//	long long sum = 0;
//	int ret;
//	for (a = 3; a < 20221118; a += 2)
//	{
//		ret = zhishu(a);
//		if (ret)
//		{
//			sum += a;
//			printf("%d ",sum);
//		}
//	}
//	printf("\n%d", sum);
//	return 0;
//}





//20221118
//long long arr[20221119] = { 0 };
//int main()
//{
//	long long i, j;
//	long long sum = 0;
//
//	arr[0] = 1; arr[1] = 1;//1和0不是质数所以先筛掉
//	for (i = 2; i < sqrt(20221118); i++)
//	{
//		if (arr[i] != 1)//跳过已经被筛掉的数
//		{
//			j = 2;
//			while (i * j <= 20221118)
//			{
//				arr[j * j] = 1;//把质数的倍数和非质数的倍数筛掉
//				j++;
//			}
//		}
//	}
//for (i = 0; i <= 20221118; i++)
//{
//	if (!arr[i])
//	{
//		sum += i;//如果数没被筛掉就把他们的下标加起来
//	}
//}
//printf("%lld", sum);
//
//	return 0;
//}


////20221118
//int arr[20221120] = { 0 }, size = 0;
//char notzs[20221120] = { 1,1 };
//long long sum = 0;
//
//void szs(int n)
//{
//	for (int i = 2; i <= n; i++)
//	{
//		if (!notzs[i])
//			arr[size++] = i;
//		for (int j = 0; j < size; j++)
//		{
//			if (arr[j] * i > n)
//				break;
//			notzs[arr[j] * i] = 1;
//			if (i % arr[j] == 0)
//				break;
//		}
//	}
//}
//int main()
//{
//	long long n = 0;
//	scanf("%lld", &n);
//	szs(n);
//	for (int u = 0; u < size ; u++)
//	{
//		sum += arr[u];
//		//printf("%d ", arr[u]);
//	}
//	printf("%lld", sum);
//	return 0;
//}


//int sl[1005][1005];
//int m, n;
//int ans;
//
//
//int dfs(int y, int x)
//{
//	int cnt = sl[y][x];
//	sl[y][x] = 0;
//
//	if (x + 1 <= n && sl[y][x + 1])
//	{
//		cnt += dfs(y, x + 1);
//	}
//	if (y + 1 <= m && sl[y + 1][x])
//	{
//		cnt += dfs(y + 1,x);
//	}
//	if (x - 1 >= 1 && sl[y][x - 1])
//	{
//		cnt += dfs(y, x - 1);
//	}
//	if (y - 1 >= 1 && sl[y - 1][x])
//	{
//		cnt += dfs(y - 1,x);
//	}
//	return cnt;
//}
//
//
//int main()
//{
//	scanf("%d %d", &m, &n);
//	for (int i = 1;i<=m;i++)
//	{
//		for (int j = 1; j <= n; j++)
//		{
//			scanf("%d", &sl[i][j]);
//			ans += sl[i][j];
//		}
//	}
//	int x, y;
//	scanf("%d %d", &x, &y);
//	if (sl[y][x])
//	{
//		ans -= dfs(y, x);
//	}
//	printf("%d", ans);
//	return 0;
//}




//int a[1005][1005];	//静态变量初始化为0
//int ans;			//静态变量初始化为0
//int n, m;
//
//int dfs(int y, int x) {		//深度优先搜索实现
//	int res = a[y][x];		//统计损失植物数量
//	a[y][x] = 0;			//标记为已搜索
//
//	//如果某个方向上有植物
//	//则“深度优先”统计此方向上的植物数量
//	if (x + 1 <= n && a[y][x + 1]) {
//		res += dfs(y, x + 1);
//	}
//	if (x - 1 >= 1 && a[y][x - 1]) {
//		res += dfs(y, x - 1);
//	}
//	if (y + 1 <= m && a[y + 1][x]) {
//		res += dfs(y + 1, x);
//	}
//	if (y - 1 >= 1 && a[y - 1][x]) {
//		res += dfs(y - 1, x);
//	}
//
//	return res;
//}
//
//int main() {
//
//	scanf("%d %d", &m, &n);
//
//	for (int i = 1; i <= m; i++) {		//读入矩阵图
//		for (int j = 1; j <= n; j++) {
//			scanf("%d", &a[i][j]);
//			ans += a[i][j];		//统计所有植物数量
//		}
//	}
//
//	int x, y;
//	scanf("%d %d", &x, &y);
//
//	//深度优先搜索 dfs 广度优先搜索 bfs 都可以实现
//	if (a[y][x]) {
//		ans -= dfs(y, x);	//这里给出深度优先搜索的方法
//	}
//
//	printf("%d", ans);
//}


//int sum;
//
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int arr[10000];
//	for (int i = 0; i < n; i++)
//	{
//		scanf("%d", &arr[i]);
//		sum += arr[i];
//	}
//	for (int j = 0; j < n; j++)
//	{
//		printf("%d ", sum - arr[j]);
//	}
//	return 0;
//}

//int zs[221120], size = 0;
//char notzs[221120] = { 1,1 };
//int i, j;
//int main()
//{
//	int cnt = 0;
//	for (i = 2; i < 221118; i++)
//	{
//		if (!notzs[i])
//			zs[size++] = i;
//		for (j = 0; j < size; j++)
//		{
//			if (zs[j] * i > 221118)
//				break;
//			notzs[zs[j] * i] = 1;
//			if (i % zs[j] == 0)
//				break;
//		}
//	}
//	for (int n = 2; n <= 221118; n++)
//	{
//		for (int m = 0; m < size; m++)
//		{
//			if (zs[m] > n)
//				break;
//			if (n % zs[m] == 0)
//			{
//				cnt++;
//			}
//		}
//	}
//	printf("%d", cnt);
//	return 0;
//}



//int main()
//{
//	char ch[10001];
//	int t = 0;
//	int n = 0;
//	int g = 0;
//	scanf("%d", &n);
//	scanf("%s", &ch);
//	for (int i = 0; i < n; i++)
//	{
//		if (ch[i] == '*')
//		{
//			int cnt = 1;
//			t += 2;
//			while (i+1 < n && ch[i+1] == '*')
//			{
//				i++;
//				cnt++;
//				t += 2;
//			}
//			for (int j = 0; j < cnt; j += 2)
//			{
//				g++;
//				printf("#");
//			}
//		}
//		else
//		{
//			t++;
//			printf("%c",ch[i]);
//		}
//	}
//	t += g * 3;
//	printf("\n%d %d", g, t);
//	return 0;
//}


//void pr(int a[])
//{
//	int i = 0;
//	for (i = 0; i < 10; i++)
//	{
//		printf("%d ", a[i]);
//	}
//}
//
//
//int main()
//{
//	int a[10] = { 0,1,2,3,4,5,6,7,8,9 };
//	pr(&a);
//	return 0;
//}



////高精度加法
//#include<string.h>
//int A[1000005], B[10000005], C[10000005],i,temp,lena,lenb,len;
//char a[1000005], b[10000005];
//int main()
//{
//	scanf("%s%s", &a, &b);
//	lena = strlen(a); lenb = strlen(b);
//	len = lena > lenb ? lena : lenb;
//	for (i = 0; i < lena; i++)//把数据倒着存方便计算
//		A[i] = a[lena - 1 - i] - '0';
//	for (i = 0; i < lenb; i++)//把数据倒着存方便计算
//		B[i] = b[lenb - 1 - i] - '0';
//	for (i = 0; i < len; i++)//加法
//	{
//		C[i] = A[i] + B[i] + temp;
//		temp = C[i] / 10;//如果进位则获得进位的数
//		C[i] %= 10;//留下进位后的个位
//	}
//	if (temp != 0)//判断最后一位加完之后是否发生进位
//	{
//		C[len] = temp;//如果进位了的话就把进的这位赋值
//		for (i = len; i >= 0; i--)
//			printf("%d", C[i]);//倒着输出
//	}
//	else//如果没进位则照样倒着输出
//		for (i = len - 1; i >= 0; i--)
//			printf("%d", C[i]);
//	return 0;
//}


////高精度减法
//#include<string.h>
//int  A[1000005], B[1000005], C[1000005], i, lena, lenb;
//char a[1000005], b[1000005], temp[1000005];
//int main()
//{
//	scanf("%s%s", &a, &b);
//	lena = strlen(a);
//	lenb = strlen(b);
//	if (strcmp(a, b) < 0 && lena == lenb || lena < lenb)//确保lena为最大的数，往后计算都是大的减小的
//	{
//		printf("-");//如果被减数小于减少则在最后的结果前面加上一个“负号”
//		strcpy(temp, a);
//		strcpy(a, b);
//		strcpy(b, temp);
//		lena = strlen(a);
//		lenb = strlen(b);
//	}
//	for (i = 0; i < lena; i++)//把数据倒着存
//		A[i] = a[lena - 1 - i] - '0';
//	for (i = 0; i < lenb; i++)
//		B[i] = b[lenb - 1 - i] - '0';
//	for (i = 0; i < lena; i++)//减法
//	{
//		if (A[i] < B[i])//如果被减数i位小于减数的i位则向前借1
//		{
//			A[i] += 10;
//			A[i + 1]--;
//		}
//		C[i] = A[i] - B[i];
//	}
//	for (i = lena - 1; i >= 0; i--)//修剪前导零
//	{
//		if (C[i] == 0 && lena > 1)
//			lena--;
//		else
//			break;
//	}
//	for (i = lena - 1; i >= 0; i--)//倒着把数组输出
//		printf("%d", C[i]);
//	return 0;
//}


////高精度乘法
//#include<string.h>
//int A[100005], B[100005], C[100005], i, j, temp, len, lena, lenb, flag1 = 1; flag2 = 1;
//char a[100005], b[100005];
//int main()
//{
//	scanf("%s%s", &a, &b);
//	if (a[0] == '-')//判断输入的数是否为负数，若是，去除负号并记录
//	{
//		strcpy(a, &a[1]);
//		flag1 = 0;
//	}
//	if (b[0] == '-')
//	{
//		strcpy(b, &b[1]);
//		flag2 = 0;
//	}
//	lena = strlen(a);
//	lenb = strlen(b);
//	len = lena + lenb;
//	for (i = 0; i < lena; i++)
//		A[i] = a[lena - 1 - i] - '0';
//	for (i = 0; i < lenb; i++)
//		B[i] = b[lenb - 1 - i] - '0';
//	for (i = 0; i < lena; i++)//减法
//	{
//		temp = 0;
//		for (j = 0; j < lenb; j++)
//		{
//			C[i + j] += A[i] * B[j]+ temp;
//			temp = C[i + j] / 10;
//			C[i + j] %= 10;
//		}
//		C[i + lenb] = temp;//进位
//	}
//	//for (i = len - 1; i >= 0; i--)//for循环去除前导零
//	//{
//	//	if (i > 1 && C[i] == 0)
//	//		len--;
//	//	else
//	//		break;
//	//}
//	while (len > 1 && C[len - 1] == 0)//while循环去除前导零
//		len--;
//	if (flag1 == 0 && flag2 != 0 || flag1 != 0 && flag2 == 0)
//		printf("-");
//	for (i = len - 1; i >= 0; i--)
//		printf("%d", C[i]);
//	return 0;
//}


////高精度阶乘
//int a[1000005], b[1000005];
//int main()
//{
//	int i, j, n,len = 0;
//	scanf("%d", &n);
//	if (n == 0) { printf("0"); return 0;}
//	a[0] = b[0] = 1;
//	for (i = 2; i <= n; i++)
//	{
//		for (j = 0; j < len + 4; j++)
//			b[j] = b[j] * i;
//		for (j = 0; j < len + 4; j++)
//			if (b[j] >= 10)
//			{
//				b[j + 1] += b[j] / 10;
//				b[j] %= 10;
//			}
//		for (j = 0; j < len + 4; j++)
//		{
//			a[j] += b[j];
//			a[j + 1] += a[j] / 10;
//			a[j] %= 10;
//		}
//		int x = len + 4;
//		for (; len > 0 && a[len] == 0; len--);
//		len = x;
//	}
//	for (i = len; i >= 0 && a[i] == 0; i--);
//	for (; i >= 0; i--) printf("%d", a[i]);
//	return 0;
//}



////高精度除法
//#include<string.h>
//char s[100000000];
//int a[100000000], b, c[100000000];//a数组为被除数，b为除数，c为保存结果的数组
//int main()
//{
//	int i,x = 0;
//	scanf("%s%d", &s, &b);
//	int len = strlen(s);
//	for (i = 0; i < len; i++)
//	{
//		a[i] = s[i] - '0';//正着把被除数存入a数组
//	}
//	for (i = 0; i < len; i++)//除法运算
//	{
//		c[i] = (x * 10 + a[i]) / b;
//		x = (x * 10 + a[i]) % b;
//	}
//	for (i = 0; c[i] == 0; i++);//去除前导0
//	printf("商为：");
//	for (; i < len; i++)
//	{
//		printf("%d", c[i]);
//	}
//	printf("\n余数为：%d",x);
//	return 0;
//}



//void my_qsort(int arr[], int left, int right)
//{
//	if (left >= right)
//		return;
//	int i = left;
//	int j = right;
//	int pivot = arr[i];//确定轴
//	while (i < j)
//	{
//		while (arr[j] >= pivot && i < j)
//			j--;//从右边开始找，找到第一个比轴小的数，并放到i的位置（轴的左边）
//		arr[i] = arr[j];
//		while (arr[i] <= pivot && i < j)
//			i++;//从左边开始找，找到第一个比轴大的数，并放到j的位置（轴的右边）
//		arr[j] = arr[i];
//	}
//	arr[i] = pivot;//把轴放好
//	my_qsort(arr, left, i - 1);//左递归
//	my_qsort(arr, i + 1, right);//右递归
//}
//#define max 10
//int main()
//{
//	int arr1[max];
//	for (int i = 0; i < max; i++)
//	{
//		scanf("%d", &arr1[i]);
//	}
//	my_qsort(arr1, 0, max - 1);
//	for (int i = 0; i < max; i++)printf("%d ", arr1[i]);
//}



//#include<stdio.h>
//long long arr[105];
//int main()
//{
//	int i,j;
//	for (i = 0; i < 100; i++)
//	{
//		scanf("%lld", &arr[i]);
//		if (arr[i] == 0) break;
//	}
//	for (j = i - 1; j >= 0; j--)
//		printf("%lld ", arr[j]);
//	return 0;
//}


//void print1(int (*p)[5],int e,int r)
//{
//	for (int i = 0; i < e; i++)
//	{
//		for (int j = 0; j < r; j++)
//		{
//			printf("%d ", (*(*p + i) + j));
//		}
//		printf("\n");
//	}
//}
//
//void print2(int (*p)[5], int e, int r)
//{
//	for (int i = 0; i < e; i++)
//	{
//		for (int j = 0; j < r; j++)
//		{
//			//printf("%d ", *(*(p+i)+j));
//			printf("%d ", *(*p + i) + j);
//		}
//		printf("\n");
//	}
//}
//
//int main()
//{
//	int arr[3][5] = { 1,2,3,4,5,2,3,4,5,6,3,4,5,6,7 };
//	print2(arr,3,5);
//	return 0;
//}


//int add(int x, int y)
//{
//	return x + y;
//}
//
//int main()
//{
//	int (*pa)(int, int) = add;
//	int ret = (*pa)(6, 4);
//	printf("%d", ret);
//	return 0;
//}


//#include <stdio.h>
//int main(void)
//{
//	int i, j;
//	for (i = 1; i <= 9; i++)
//	{
//		for (j = 1; j <= i; j++)
//		{
//			printf("%d*%d=%-4d", i, j, i * j);
//		}
//		printf("\n");
//	}
//	return 0;
//}

//#include <stdio.h>
//
//int main()
//{
//
//	int a, b, c, d;
//	scanf("%d %d", &a, &b);
//	if (a > b)c = a;
//	else c = b;
//	while (c--)
//	{
//		if (a % c == 0 && b % c == 0)break;
//	}
//	printf("%d", c);
//	return 0;
//}

//#define N 10000000
//long long arr[N] = { 0 }, size = 0;
//char notzs[N] = { 1,1 };
//void Euler_sift(int n)
//{
//	for (int i = 2; i <= n; i++)
//	{
//		if (!notzs[i])
//			arr[size++] = i;
//		for (int j = 0; j < size; j++)
//		{
//			if (arr[j] * i > n)
//				break;
//			notzs[arr[j] * i] = 1;
//			if (i % arr[j] == 0)
//				break;
//		}
//	}
//}
//
//
//void sift(int n)
//{
//	for (int i = 2; i < n; i++)
//	{
//		int flag = 1;
//		for (int j = 2; j*j < n; j++)
//		{
//			if (i % j == 0)
//			{
//				flag = 0;
//				break;
//			}
//		}
//		if (flag)
//			size++;
//	}
//}
//
//int main()
//{
//	Euler_sift(10000000);
//	printf("%lld", size);
//}


//#include<stdio.h>
//int main()
//{
//	int a = 123;
//	int* aa = &a;
//	printf("%d ", a--);
//	printf("%d ", a);
//}

//int main()
//{
//	int i, k, a[10], p[3];
//	k = 5;
//	for (i = 0; i < 10; i++)
//		a[i] = i;
//	for (i = 0; i < 3; i++)
//		p[i] = a[i * (i + 1)];
//	for (i = 0; i < 3; i++)
//		k += p[i] * 2;
//	printf("%d\n", k);
//}

//int main() {
//	int n; scanf("%d", &n);
//	int l = 0, r = n-1, cnt = 0;
//	for (int i = 1; i <= n * n; i++)
//	{
//		if (cnt == l)
//		{
//			cnt++;
//			printf("*");
//			if (cnt == n)
//			{
//				printf("\n");
//				r--;
//				l++;
//				cnt = 0;
//			}
//			continue;
//		}
//		else if (cnt == r)
//		{
//			printf("*");
//			cnt++;
//			if (cnt == n)
//			{
//				printf("\n");
//				r--;
//				l++;
//				cnt = 0;
//			}
//			continue;
//		}
//		printf(" ");
//		cnt++;
//		if (cnt == n)
//		{
//			printf("\n");
//			r--;
//			l++;
//			cnt = 0;
//		}
//	}
//	return 0;
//}


//#include <stdio.h>
//
//int main() {
//	int n;
//	while (scanf("%d", &n) != EOF)
//	{
//		char ans[50][50] = {'*'};
//		for (int i = 0; i < n; i++)
//		{
//			ans[0][i] = '*';
//			ans[n - 1][i] = '*';
//			ans[i][0] = '*';
//			ans[i][n - 1] = '*';
//		}
//		for (int i = 0; i < n; i++)
//		{
//			for (int j = 0; j < n; j++)
//			{
//				if (ans[i][j] != '*')
//				{
//					printf("  ");
//					continue;
//				}
//				printf("%c", ans[i][j]);
//				printf(" ");
//			}
//			printf("\n");
//		}
//	}
//	return 0;
//}


//int main()
//{
//	int a = 1;
//	int* p = &a;
//	printf("%p", a);
//}


//#include<stdio.h>
//
//union ts
//{
//	char b[5];
//	int a;
//}t;
//
//int main()
//{
//	//printf("%p\n", &t.b[6]);
//	//printf("%p\n", &t.a);
//	int a = 16;
//	printf("%p", a);
//	return 0;
//}


//#include<stdlib.h>
//typedef struct S
//{
//	char c;
//	int arr[0];
//}S;
//
//int main()
//{
//	S* s = malloc(sizeof(S) + 40);
//	if (s == NULL)
//	{
//		perror(s);
//		return 1;
//	}
//	s->c = 'c';
//	for (int i = 0; i < 10; i++)
//	{
//		s->arr[i] = i;
//	}
//	printf("%c ", s->c);
//	for (int i = 0; i < 10; i++)
//	{
//		printf("%d ", s->arr[i]);
//	}
//	S* ss = realloc(s, sizeof(s) + 40);
//	if (ss != NULL)
//	{
//		s = ss;
//	}
//	printf("\n");
//	s->c = 'd';
//	for (int i = 0; i < 10; i++)
//	{
//		s->arr[i] = i*i;
//	}
//	printf("%c ", s->c);
//	for (int i = 0; i < 10; i++)
//	{
//		printf("%d ", s->arr[i]);
//	}
//	free(s);
//	s = NULL;
//	ss = NULL;
//	return 0;
//}
//


//typedef struct S
//{
//	char c;
//	int a;
//}S;
//
//int main()
//{
//	FILE* pf = fopen("test.txt", "w");
//	if (pf == NULL)
//	{
//		perror(fopen);
//		return 1;
//	}
//	S t1,t = {'a',4};
//	fprintf(pf, "%c %d", t.c, t.a);
//
//	fclose(pf);
//	FILE* pf1 = fopen("test.txt", "r");
//	if (pf == NULL)
//	{
//		perror(fopen);
//		return 2;
//	}
//	fscanf(pf1, "%c %d", &t1.c, &t1.a);
//	printf("%c %d", t1.c, t1.a);
//
//	fclose(pf1);
//	return 0;
//}

//int main()
//{
//	char ch[105],size = 0;
//	char c;
//	FILE* pf = fopen("test.txt", "w");
//	if (!pf)
//	{
//		perror(fopen);
//		return 1;
//	}
//	for (int i = 0; i < 100; i++)
//	{
//		fputc(i , pf);
//	}
//
//	fclose(pf);
//	return 0;
//}

//int main()
//{
//	char ch[105], size = 0;
//	char c;
//	FILE* pf = fopen("test.txt", "w");
//	if (!pf)
//	{
//		perror(fopen);
//		return 1;
//	}
//	fputs("完成一次文件操作练习。", pf);
//
//	fclose(pf);
//	return 0;
//}

//int main()
//{
//	char ch[105], size = 0;
//	char c;
//	FILE* pf = fopen("test.txt", "r");
//	if (!pf)
//	{
//		perror(fopen);
//		return 1;
//	}
//	if (fgets(ch, 25, pf) != NULL) {
//		puts(ch);
//	}
//
//	fclose(pf);
//	return 0;
//}

//#define ONE 1
//
//#ifndef ONE
//
//#if 1
//
//int main()
//{
//	FILE* pf = fopen("ftext.txt", "w");
//	if (!pf)
//	{
//		perror(fopen);
//		return 1;
//	}
//	fprintf(pf, "%s", "abcdef");
//	fclose(pf);
//#elif 1
//	FILE* pf1 = fopen("ftext.txt", "r");
//	if (!pf)
//	{
//		perror(fopen);
//		return 1;
//	}
//	fgetc(pf1); fgetc(pf1);
//	fseek(pf1, -2, SEEK_CUR);
//	char c = fgetc(pf1);
//	printf("c=%c\n", c);
//	char c1 = fgetc(pf1);
//	printf("c1=%c\n", c1);
//	printf("tell=%ld\n", ftell(pf));
//	rewind(pf);
//	printf("tell2=%ld\n", ftell(pf));
//	fgetc(pf1); fgetc(pf1);
//	printf("tell3=%ld\n", ftell(pf));
//	char c2 = fgetc(pf1);
//	printf("c2=%c\n", c2);
//
//	fclose(pf1);
//
//	return 0;
// }
//
//#endif
//
// int main()
// {
//	 int a = 0;
//	 return 0;
// }
//
//#endif


//int Fib(int n)//0 1 1 2 3 5 8 13 21
//{
//	if (n <= 2) return 1;
//	//if (n == 2) return 1;
//	return Fib(n - 1) + Fib(n - 2);
//}
//
//long long Fib1(int n)
//{
//	long long ar[9999] = { 0,1 };
//	for (int i = 2; i <= n; i++)
//	{
//		ar[i] = ar[i - 1] + ar[i - 2];
//	}
//	return ar[n];
//}
//
//int main()
//{
//	long long n, arr[1005] = { 0 };
//	for (int i = 1; i < 100; i++)
//	{
//		arr[i] = Fib1(i);
//	}
//	for (int i = 0; i < 100; i++)
//	{
//		printf("%lld\n", arr[i]);
//	}
//}


//#include<stdio.h>
//int main()
//{
//	int arr[5] = { 1,2,3,4,5 };
//	int (*parr)[5] = &arr;
//	printf("%d\n", sizeof(arr));
//
//	printf("%d\n", sizeof(arr+0));
//}



//int main()
//{
//	int a[] = { 1,2,3,4 };
//	printf("%zd", sizeof(**&a + 1));
//	return 0;
//}


//int main()
//{
//	int a[5][5] = {1,2,3,4,5,6,7,8,9,10};
//	int* ptr = *(a + 1);
//	printf("%d  ", *ptr);
//	printf("%d", *(a + 1));
//	return 0;
//}

//int bin_search(int arr[], int left, int right, int key)
//{
//	int mid = 0;
//	int m = 0;
//	while (left < right)
//	{
//		mid = (left + right) / 2;
//		if (key < arr[mid])
//		{
//			right = mid - 1;
//		}
//		else if (key > arr[mid])
//		{
//			left = mid + 1;
//		}
//		else
//		{
//			return mid;
//		}
//	}
//	return -1;
//}
//

//void ye(int n)
//{
//	if ((n % 400 == 0) || (n % 4 == 0 && n % 100 != 0))
//	{
//		printf("yes");
//		return;
//	}
//	printf("no");
//}

//int zs(int n)
//{
//	for (int i = 2; i * i < n; i++)
//	{
//		if (n % i == 0)
//		{
//			return 0;
//		}
//	}
//	return 1;
//}

//#include<string.h>
//#include<stdlib.h>
//void init(void* arr,int size)
//{
//	char* a = (char*)arr;
//	for (int i = 0; i < size; i++)
//	{
//		*(a + i) = 0;
//	}
//}
//
//
//void print(int* base,int number)
//{
//	for (int i = 0; i < number; i++)
//	{
//		printf("%d ", *(base + i));
//	}
//}
//
//int* reverse(int* base, int number)
//{
//	int* a = base+number;
//	memset(a ,0, 40);
//	for (int i = 0; i < number; i++)
//	{
//		*(a + i) = base[number - 1 - i];
//	}
//	return a;
//}
//int main()
//{
//	int arr[10];
//	init(arr, 40);
//	int num = sizeof(arr) / sizeof(arr[0]);
//	print(arr, num);
//	printf("\n");
//	for (int i = 0; i < 10; i++)
//	{
//		arr[i] = i;
//	}
//	print(arr, num);
//	printf("\n");
//	reverse(arr, num);
//	print(arr, num);
//	return 0;
//}



//enum Day//星期
//{
//	Mon = 0,
//	Tues,
//	Wed = 0,
//	Thur,
//	Fri,
//	Sat,
//	Sun
//};
//

union Un1
{
	long i;
	int ch[5];
	char c;
};

union Un2
{
	char c[11];
	int i;
};
 
union Un3
{
	int c;
	char a;
};
struct stu
{
	long a;

	char c;
};
int main()
{
	//下⾯输出的结果是什么？
	printf("%zd\n", sizeof(union Un1));
	printf("%zd\n", sizeof(union Un2));
	printf("%zd\n", sizeof(union Un3));
	printf("%zd\n", sizeof(struct stu));
	printf("%zd\n", sizeof(long));
	return 0;
}











